#pragma once
#include "stdafx.h"
#include <boost/noncopyable.hpp>
#include <boost/shared_ptr.hpp>
#include "Server.h"
#include "SchemaManager.h"
#include "QueryManager.h"
#include "PlanManager.h"
#include "SemanticInterpreter.h"
#include "LogPlanGenerator.h"
#include "TableSource.h"
#include "QueryOutput.h"
class StreamServer:public Server, private boost::noncopyable
{ 
private: 
	

	void registerConfigureFile(void);

	boost::shared_ptr<SchemaManager> schemaManager;
	boost::shared_ptr<QueryManager> queryManager;
	boost::shared_ptr<PlanManager> planManager;
	boost::shared_ptr<SemanticInterpreter>semanticInterpreter;
	boost::shared_ptr<LogPlanGenerator>logPlanGenerator;
public:
	StreamServer(void);
	~StreamServer(void);

	int beginAppSpecification() ;
	int endAppSpecification() ;
	int beginExecution() ;
	int registerSchema() ;

	int registerQuery() ;


};

